package com.jeequan.jeepay.core.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeequan.jeepay.core.model.BaseModel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.*;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

 /**
 * 代付订单表;
 * @author : wondream322@gmail.com
 * @date : 2023-8-19
 */
@ApiModel(value = "代付订单表",description = "")
@TableName("payment_order")
@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@ToString
@NoArgsConstructor
@AllArgsConstructor
public class PaymentOrder extends BaseModel implements Serializable,Cloneable{
    
     //gw
     public static final LambdaQueryWrapper<PayMemberDO> gw(){
         return new LambdaQueryWrapper<>();
     }
     
    /** 主键 */
    @ApiModelProperty(value = "主键",name = "主键",notes = "")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id ;
    /** 用户id */
    @ApiModelProperty(value = "用户id",name = "用户id",notes = "")
    private Integer memberId ;
    /** 订单id */
    @ApiModelProperty(value = "订单id",name = "订单id",notes = "")
    private String orderId ;
    /** 下游订单号 */
    @ApiModelProperty(value = "下游订单号",name = "下游订单号",notes = "")
    private String outTradeNo ;
    /** 上游订单号 */
    @ApiModelProperty(value = "上游订单号",name = "上游订单号",notes = "")
    private String channelOrderId ;
    /** 货币类型 */
    @ApiModelProperty(value = "货币类型",name = "货币类型",notes = "")
    private Integer balanceType ;
     /** 状态：几类账户（一类、二类） */
     @ApiModelProperty(value = "状态：几类账户（一类、二类）",name = "状态：几类账户（一类、二类）",notes = "")
     private Integer balanceLevel ;
    /** 代付回调通知地址 */
    @ApiModelProperty(value = "代付回调通知地址",name = "代付回调通知地址",notes = "")
    private String notifyUrl ;
    /** 银行卡号 */
    @ApiModelProperty(value = "银行卡号",name = "银行卡号",notes = "")
    private String bankCardNo ;
    /** 户名 */
    @ApiModelProperty(value = "户名",name = "户名",notes = "")
    private String bankAccount ;
    /** 银行编码 */
    @ApiModelProperty(value = "银行编码",name = "银行编码",notes = "")
    private String bankCode ;
    /** 印度支付必填(11位，第五位为0) */
    @ApiModelProperty(value = "印度支付必填(11位，第五位为0)",name = "印度支付必填(11位，第五位为0)",notes = "")
    private String ifsc ;
    /** 手机号 */
    @ApiModelProperty(value = "手机号",name = "手机号",notes = "")
    private String mobile ;
    /** 邮箱 */
    @ApiModelProperty(value = "邮箱",name = "邮箱",notes = "")
    private String email ;
    /** 额外的参数 */
    @ApiModelProperty(value = "额外的参数",name = "额外的参数",notes = "")
    private String extend ;
    /**  */
    @ApiModelProperty(value = "",name = "",notes = "")
    private BigDecimal withdrawAmount ;
    /** 手续费 */
    @ApiModelProperty(value = "手续费",name = "手续费",notes = "")
    private BigDecimal withdrawFee ;
    /** 实际到账 */
    @ApiModelProperty(value = "实际到账",name = "实际到账",notes = "")
    private BigDecimal withdrawRealAmount ;
    /** 到账时间 0-to 1-t1 */
    @ApiModelProperty(value = "到账时间 0-to 1-t1",name = "到账时间 0-to 1-t1",notes = "")
    private Integer handleTime ;
    /** 成本 */
    @ApiModelProperty(value = "成本",name = "成本",notes = "")
    private BigDecimal cost ;
    /** 成本费率 */
    @ApiModelProperty(value = "成本费率",name = "成本费率",notes = "")
    private BigDecimal costRate ;
    /** 费率类型：按单笔收费0，按比例收费：1 */
    @ApiModelProperty(value = "费率类型：按单笔收费0，按比例收费：1",name = "费率类型：按单笔收费0，按比例收费：1",notes = "")
    private Integer rateType ;
    /** 代付锁，防止重复提交 */
    @ApiModelProperty(value = "代付锁，防止重复提交",name = "代付锁，防止重复提交",notes = "")
    private Integer dfLock ;
    /** 代码控制器名称 */
    @ApiModelProperty(value = "代码控制器名称",name = "代码控制器名称",notes = "")
    private String dfCode ;
    /** 代付通道id */
    @ApiModelProperty(value = "代付通道id",name = "代付通道id",notes = "")
    private Integer dfId ;
    /** 代付名称 */
    @ApiModelProperty(value = "代付名称",name = "代付名称",notes = "")
    private String dfName ;
    /** 代付API扣除手续费方式，0：从到账金额里扣，1：从商户余额里扣 */
    @ApiModelProperty(value = "代付API扣除手续费方式，0：从到账金额里扣，1：从商户余额里扣",name = "代付API扣除手续费方式，0：从到账金额里扣，1：从商户余额里扣",notes = "")
    private Integer dfChargeType ;
    /** 通道商户号 */
    @ApiModelProperty(value = "通道商户号",name = "通道商户号",notes = "")
    private String channelMchId ;
    /** 申请时间 */
    @ApiModelProperty(value = "申请时间",name = "申请时间",notes = "")
    private Date applyTime ;
    /** 审核通过时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "审核通过时间",name = "审核通过时间",notes = "")
    private Date approveTime ;
    /** 备注 */
    @ApiModelProperty(value = "备注",name = "备注",notes = "")
    private String remark ;
    /** 0-未处理 1-处理中 2-已打款 3-已驳回 4-打款失败 */
    @ApiModelProperty(value = "0-未处理 1-处理中 2-已打款 3-已驳回 4-打款失败",name = "0-未处理 1-处理中 2-已打款 3-已驳回 4-打款失败",notes = "")
    private Integer state ;
    /** 创建时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "创建时间",name = "创建时间",notes = "")
    private Date createTime ;
    /** 更新时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "更新时间",name = "更新时间",notes = "")
    private Date updateTime ;
    /**  */
    @ApiModelProperty(value = "",name = "",notes = "")
    private Integer payApiId ;
    /** 代付API申请ID */
    @ApiModelProperty(value = "代付API申请ID",name = "代付API申请ID",notes = "")
    private Integer dfApiId ;
    /** 自动代付尝试提交次数 */
    @ApiModelProperty(value = "自动代付尝试提交次数",name = "自动代付尝试提交次数",notes = "")
    private Integer autoSubmitTry ;
    /** 是否自动提交 */
    @ApiModelProperty(value = "是否自动提交",name = "是否自动提交",notes = "")
    private Integer isAuto ;
    /** 最后提交时间 */
    @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
    @ApiModelProperty(value = "最后提交时间",name = "最后提交时间",notes = "")
    private Date lastSubmitTime ;
    /** 自动查询次数 */
    @ApiModelProperty(value = "自动查询次数",name = "自动查询次数",notes = "")
    private Integer autoQueryNum ;

}